[INFO] cloning repository https://github.com/leocth/hieronymusv2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leocth/hieronymusv2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleocth%2Fhieronymusv2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleocth%2Fhieronymusv2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 19f2c5241b398e86b60c30b058043bc77febd3d3
[INFO] checking leocth/hieronymusv2 against try#b152f5575a2ac7126ae0019e4e679abe9399213e for pr-157841
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleocth%2Fhieronymusv2" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/leocth/hieronymusv2
[INFO] finished tweaking git repo https://github.com/leocth/hieronymusv2
[INFO] tweaked toml for git repo https://github.com/leocth/hieronymusv2 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/leocth/hieronymusv2 on toolchain b152f5575a2ac7126ae0019e4e679abe9399213e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/leocth/hieronymusv2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tui v0.16.0
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.1
[INFO] [stderr]   Downloaded tracing-distributed v0.3.1
[INFO] [stderr]   Downloaded crossterm_winapi v0.8.0
[INFO] [stderr]   Downloaded futures-io v0.3.18
[INFO] [stderr]   Downloaded tokio-macros v1.6.0
[INFO] [stderr]   Downloaded simple_asn1 v0.6.1
[INFO] [stderr]   Downloaded pin-project-internal v1.0.8
[INFO] [stderr]   Downloaded futures-macro v0.3.18
[INFO] [stderr]   Downloaded libhoney-rust v0.1.6
[INFO] [stderr]   Downloaded tracing-honeycomb v0.4.2
[INFO] [stderr]   Downloaded typenum v1.14.0
[INFO] [stderr]   Downloaded rsa-der v0.3.0
[INFO] [stderr]   Downloaded smol_str v0.1.21
[INFO] [stderr]   Downloaded base64ct v1.1.1
[INFO] [stderr]   Downloaded zeroize_derive v1.2.2
[INFO] [stderr]   Downloaded signal-hook v0.3.12
[INFO] [stderr]   Downloaded pkcs1 v0.2.4
[INFO] [stderr]   Downloaded pem-rfc7468 v0.2.4
[INFO] [stderr]   Downloaded nom-derive v0.10.0
[INFO] [stderr]   Downloaded nom-derive-impl v0.10.0
[INFO] [stderr]   Downloaded tui-logger v0.6.5
[INFO] [stderr]   Downloaded pin-project v1.0.8
[INFO] [stderr]   Downloaded rustversion v1.0.5
[INFO] [stderr]   Downloaded tracing-error v0.1.2
[INFO] [stderr]   Downloaded owo-colors v1.3.0
[INFO] [stderr]   Downloaded crossterm v0.20.0
[INFO] [stderr]   Downloaded async-trait v0.1.51
[INFO] [stderr]   Downloaded rsa v0.5.0
[INFO] [stderr]   Downloaded eyre v0.6.5
[INFO] [stderr]   Downloaded hematite-nbt v0.5.2
[INFO] [stderr]   Downloaded serde_json v1.0.72
[INFO] [stderr]   Downloaded backtrace v0.3.63
[INFO] [stderr]   Downloaded reqwest v0.10.10
[INFO] [stderr]   Downloaded num-bigint-dig v0.7.0
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.3
[INFO] [stderr]   Downloaded reqwest v0.11.7
[INFO] [stderr]   Downloaded crossterm v0.22.1
[INFO] [stderr]   Downloaded h2 v0.3.7
[INFO] [stderr]   Downloaded color-spantrace v0.1.6
[INFO] [stderr]   Downloaded object v0.27.1
[INFO] [stderr]   Downloaded libc v0.2.108
[INFO] [stderr]   Downloaded tokio v1.14.0
[INFO] [stderr]   Downloaded color-eyre v0.5.11
[INFO] [stderr]   Downloaded gimli v0.26.1
[INFO] [stderr]   Downloaded cfb8 v0.7.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba
[INFO] running `Command { std: "docker" "start" "3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.108
[INFO] [stderr]    Compiling proc-macro2 v1.0.32
[INFO] [stderr]    Compiling syn v1.0.82
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking once_cell v1.8.0
[INFO] [stderr]    Compiling serde_derive v1.0.130
[INFO] [stderr]    Compiling serde v1.0.130
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling libm v0.2.1
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling futures-core v0.3.18
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]     Checking smallvec v1.7.0
[INFO] [stderr]     Checking bytes v1.1.0
[INFO] [stderr]    Compiling typenum v1.14.0
[INFO] [stderr]    Compiling ryu v1.0.6
[INFO] [stderr]     Checking tracing-core v0.1.21
[INFO] [stderr]    Compiling futures-task v0.3.18
[INFO] [stderr]     Checking futures-sink v0.3.18
[INFO] [stderr]    Compiling futures-util v0.3.18
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling serde_json v1.0.72
[INFO] [stderr]     Checking futures-io v0.3.18
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]    Compiling futures-channel v0.3.18
[INFO] [stderr]    Compiling pkg-config v0.3.22
[INFO] [stderr]     Checking http v0.2.5
[INFO] [stderr]    Compiling httparse v1.5.1
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking try-lock v0.2.3
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking tracing-log v0.1.2
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking thread_local v1.1.3
[INFO] [stderr]     Checking sharded-slab v0.1.4
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]    Compiling tokio v1.14.0
[INFO] [stderr]     Checking tower-service v0.3.1
[INFO] [stderr]     Checking tinyvec v1.5.1
[INFO] [stderr]    Compiling signal-hook v0.3.12
[INFO] [stderr]    Compiling openssl-sys v0.9.71
[INFO] [stderr]     Checking matchers v0.0.1
[INFO] [stderr]     Checking generic-array v0.14.4
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling openssl v0.10.38
[INFO] [stderr]    Compiling encoding_rs v0.8.29
[INFO] [stderr]     Checking unicode-bidi v0.3.7
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking getrandom v0.2.3
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking socket2 v0.3.19
[INFO] [stderr]     Checking crypto-bigint v0.2.11
[INFO] [stderr]    Compiling mime_guess v2.0.3
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]     Checking httpdate v0.3.2
[INFO] [stderr]    Compiling native-tls v0.2.8
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking const-oid v0.6.2
[INFO] [stderr]     Checking rand v0.8.4
[INFO] [stderr]     Checking signal-hook-mio v0.2.1
[INFO] [stderr]     Checking unicode-normalization v0.1.19
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]     Checking ipnet v2.3.1
[INFO] [stderr]     Checking der v0.4.5
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stderr]     Checking base64ct v1.1.1
[INFO] [stderr]     Checking openssl-probe v0.1.4
[INFO] [stderr]     Checking quickcheck v1.0.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking pem-rfc7468 v0.2.4
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]    Compiling num-bigint-dig v0.7.0
[INFO] [stderr]     Checking socket2 v0.4.2
[INFO] [stderr]    Compiling nom v7.1.0
[INFO] [stderr]    Compiling backtrace v0.3.63
[INFO] [stderr]    Compiling slog v2.7.0
[INFO] [stderr]    Compiling eyre v0.6.5
[INFO] [stderr]    Compiling rustversion v1.0.5
[INFO] [stderr]     Checking gimli v0.26.1
[INFO] [stderr]    Compiling time-macros v0.2.3
[INFO] [stderr]     Checking itertools v0.9.0
[INFO] [stderr]     Checking spki v0.4.1
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking crossterm v0.20.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking http-body v0.3.1
[INFO] [stderr]     Checking http-body v0.4.4
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking object v0.27.1
[INFO] [stderr]    Compiling async-trait v0.1.51
[INFO] [stderr]     Checking rustc-demangle v0.1.21
[INFO] [stderr]     Checking indenter v0.3.3
[INFO] [stderr]     Checking owo-colors v1.3.0
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking tui v0.16.0
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]     Checking flate2 v1.0.22
[INFO] [stderr]     Checking time v0.3.5
[INFO] [stderr]     Checking cesu8 v1.1.0
[INFO] [stderr]     Checking cfb8 v0.7.1
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking crossterm v0.22.1
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]     Checking sha1 v0.6.0
[INFO] [stderr]     Checking webpki v0.21.4
[INFO] [stderr]     Checking sct v0.6.1
[INFO] [stderr]     Checking rustls v0.18.1
[INFO] [stderr]     Checking webpki-roots v0.20.0
[INFO] [stderr]     Checking tokio-util v0.3.1
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]     Checking tokio-rustls v0.14.1
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.18
[INFO] [stderr]    Compiling futures-macro v0.3.18
[INFO] [stderr]    Compiling pin-project-internal v1.0.8
[INFO] [stderr]    Compiling tokio-macros v1.6.0
[INFO] [stderr]    Compiling zeroize_derive v1.2.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling nom-derive-impl v0.10.0
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking zeroize v1.4.3
[INFO] [stderr]     Checking pkcs1 v0.2.4
[INFO] [stderr]     Checking pkcs8 v0.7.6
[INFO] [stderr]     Checking pin-project v1.0.8
[INFO] [stderr]     Checking nom-derive v0.10.0
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking tracing v0.1.29
[INFO] [stderr]     Checking simple_asn1 v0.6.1
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking tracing-subscriber v0.3.3
[INFO] [stderr]     Checking rsa-der v0.3.0
[INFO] [stderr]     Checking rsa v0.5.0
[INFO] [stderr]     Checking tracing-error v0.2.0
[INFO] [stderr]     Checking h2 v0.2.7
[INFO] [stderr]     Checking tokio-util v0.6.9
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking h2 v0.3.7
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking tracing-serde v0.1.2
[INFO] [stderr]     Checking serde_urlencoded v0.7.0
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]     Checking hematite-nbt v0.5.2
[INFO] [stderr]     Checking toml v0.5.8
[INFO] [stderr]     Checking smol_str v0.1.21
[INFO] [stderr]     Checking hyper v0.13.10
[INFO] [stderr]     Checking tui-logger v0.6.5
[INFO] [stderr]     Checking tracing-subscriber v0.2.25
[INFO] [stderr]     Checking hyper v0.14.15
[INFO] [stderr]     Checking tracing-error v0.1.2
[INFO] [stderr]     Checking tracing-distributed v0.3.1
[INFO] [stderr]     Checking color-spantrace v0.1.6
[INFO] [stderr]     Checking color-eyre v0.5.11
[INFO] [stderr]     Checking hyper-rustls v0.21.0
[INFO] [stderr]     Checking reqwest v0.10.10
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking libhoney-rust v0.1.6
[INFO] [stderr]     Checking reqwest v0.11.7
[INFO] [stderr]     Checking tracing-honeycomb v0.4.2
[INFO] [stderr]     Checking hieronymusv2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `test`
[INFO] [stdout]   --> src/data.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let (i, test) = peek(be_u8)(i)?;
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test`
[INFO] [stdout]   --> src/data.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let (i, test) = peek(be_u8)(i)?;
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/net/play.rs:68:28
[INFO] [stdout]    |
[INFO] [stdout] 68 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/net/play.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/net/play.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:142:28
[INFO] [stdout]     |
[INFO] [stdout] 142 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:182:28
[INFO] [stdout]     |
[INFO] [stdout] 182 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/net/play.rs:68:28
[INFO] [stdout]    |
[INFO] [stdout] 68 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:202:28
[INFO] [stdout]     |
[INFO] [stdout] 202 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/net/play.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:214:28
[INFO] [stdout]     |
[INFO] [stdout] 214 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/net/play.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:228:28
[INFO] [stdout]     |
[INFO] [stdout] 228 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:246:28
[INFO] [stdout]     |
[INFO] [stdout] 246 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:261:28
[INFO] [stdout]     |
[INFO] [stdout] 261 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:142:28
[INFO] [stdout]     |
[INFO] [stdout] 142 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:280:28
[INFO] [stdout]     |
[INFO] [stdout] 280 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:307:28
[INFO] [stdout]     |
[INFO] [stdout] 307 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:182:28
[INFO] [stdout]     |
[INFO] [stdout] 182 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:317:28
[INFO] [stdout]     |
[INFO] [stdout] 317 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:202:28
[INFO] [stdout]     |
[INFO] [stdout] 202 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:330:28
[INFO] [stdout]     |
[INFO] [stdout] 330 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:214:28
[INFO] [stdout]     |
[INFO] [stdout] 214 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:228:28
[INFO] [stdout]     |
[INFO] [stdout] 228 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:356:28
[INFO] [stdout]     |
[INFO] [stdout] 356 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:371:28
[INFO] [stdout]     |
[INFO] [stdout] 371 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:246:28
[INFO] [stdout]     |
[INFO] [stdout] 246 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:386:28
[INFO] [stdout]     |
[INFO] [stdout] 386 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:261:28
[INFO] [stdout]     |
[INFO] [stdout] 261 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:399:28
[INFO] [stdout]     |
[INFO] [stdout] 399 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:280:28
[INFO] [stdout]     |
[INFO] [stdout] 280 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:412:28
[INFO] [stdout]     |
[INFO] [stdout] 412 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:427:28
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:307:28
[INFO] [stdout]     |
[INFO] [stdout] 307 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:440:28
[INFO] [stdout]     |
[INFO] [stdout] 440 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:317:28
[INFO] [stdout]     |
[INFO] [stdout] 317 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:455:28
[INFO] [stdout]     |
[INFO] [stdout] 455 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:330:28
[INFO] [stdout]     |
[INFO] [stdout] 330 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:356:28
[INFO] [stdout]     |
[INFO] [stdout] 356 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:469:28
[INFO] [stdout]     |
[INFO] [stdout] 469 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:371:28
[INFO] [stdout]     |
[INFO] [stdout] 371 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:484:28
[INFO] [stdout]     |
[INFO] [stdout] 484 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:386:28
[INFO] [stdout]     |
[INFO] [stdout] 386 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:512:28
[INFO] [stdout]     |
[INFO] [stdout] 512 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:399:28
[INFO] [stdout]     |
[INFO] [stdout] 399 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:539:28
[INFO] [stdout]     |
[INFO] [stdout] 539 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:412:28
[INFO] [stdout]     |
[INFO] [stdout] 412 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:427:28
[INFO] [stdout]     |
[INFO] [stdout] 427 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:556:28
[INFO] [stdout]     |
[INFO] [stdout] 556 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:440:28
[INFO] [stdout]     |
[INFO] [stdout] 440 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:573:28
[INFO] [stdout]     |
[INFO] [stdout] 573 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:585:28
[INFO] [stdout]     |
[INFO] [stdout] 585 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:455:28
[INFO] [stdout]     |
[INFO] [stdout] 455 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:469:28
[INFO] [stdout]     |
[INFO] [stdout] 469 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:484:28
[INFO] [stdout]     |
[INFO] [stdout] 484 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:512:28
[INFO] [stdout]     |
[INFO] [stdout] 512 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:539:28
[INFO] [stdout]     |
[INFO] [stdout] 539 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:556:28
[INFO] [stdout]     |
[INFO] [stdout] 556 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:573:28
[INFO] [stdout]     |
[INFO] [stdout] 573 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/net/play.rs:585:28
[INFO] [stdout]     |
[INFO] [stdout] 585 |     async fn handle(&self, conn: &mut Connection) -> eyre::Result<()> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `x`, `y`, and `z` are never used
[INFO] [stdout]   --> src/data.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Position {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 16 |     pub fn x(self) -> i32 {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn y(self) -> i16 {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn z(self) -> i32 {
[INFO] [stdout]    |            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Angle` is never constructed
[INFO] [stdout]   --> src/data.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Angle(pub u8);
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Angular` is never used
[INFO] [stdout]   --> src/data.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait Angular {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_degrees_rounded`, `from_radians_rounded`, `to_degrees`, and `to_radians` are never used
[INFO] [stdout]    --> src/data.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl Angle {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  96 |     pub fn from_degrees_rounded<F: Angular>(f: F) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn from_radians_rounded<F: Angular>(f: F) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn to_degrees<F: Angular>(self) -> F {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn to_radians<F: Angular>(self) -> F {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_ref` is never used
[INFO] [stdout]    --> src/data.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl Identifier {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 142 |     pub fn as_ref<'a>(&'a self) -> IdentifierRef<'a> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `teleport_id` is never read
[INFO] [stdout]   --> src/net/play.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct TeleportConfirm {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 62 |     #[nom(Parse = "varint")]
[INFO] [stdout] 63 |     teleport_id: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TeleportConfirm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transaction_id` and `location` are never read
[INFO] [stdout]   --> src/net/play.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct QueryBlockNbt {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 75 |     #[nom(Parse = "varint")]
[INFO] [stdout] 76 |     transaction_id: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     location: Position,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueryBlockNbt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `new_difficulty` is never read
[INFO] [stdout]   --> src/net/play.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct SetDifficulty {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 89 |     new_difficulty: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SetDifficulty` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]    --> src/net/play.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct ChatMessage<'a> {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 101 |     #[nom(Parse = "var_str_with_max_length(256u32)")]
[INFO] [stdout] 102 |     message: &'a str,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `action_id` is never read
[INFO] [stdout]    --> src/net/play.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | struct ClientStatus {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 114 |     #[nom(Parse = "varint")]
[INFO] [stdout] 115 |     action_id: u32, // todo
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClientStatus` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/net/play.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | struct ClientSettings<'a> {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 127 |     #[nom(Parse = "var_str_with_max_length(16u32)")]
[INFO] [stdout] 128 |     locale: &'a str,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 129 |     view_distance: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 130 |     #[nom(Parse = "varint")]
[INFO] [stdout] 131 |     chat_mode: u32, //TODO
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 132 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 133 |     chat_colors: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 134 |     displayed_skin_parts: DisplayedSkinParts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 |     main_arm: Arm,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 136 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 137 |     enable_text_filtering: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClientSettings` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transaction_id` and `text` are never read
[INFO] [stdout]    --> src/net/play.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | struct TabComplete<'a> {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 161 |     #[nom(Parse = "varint")]
[INFO] [stdout] 162 |     transaction_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 163 |     #[nom(Parse = "var_str_with_max_length(32500u32)")]
[INFO] [stdout] 164 |     text: &'a str,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TabComplete` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `window_id` and `button_id` are never read
[INFO] [stdout]    --> src/net/play.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct ClickWindowButton {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 176 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 177 |     button_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClickWindowButton` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/net/play.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct ClickWindow {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 189 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 190 |     #[nom(Parse = "varint")]
[INFO] [stdout] 191 |     state_id: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 192 |     slot: i16,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 193 |     button: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 194 |     #[nom(Parse = "varint")]
[INFO] [stdout] 195 |     mode: u32, // todo,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 196 |     slots: Vec<(i16, Slot)>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 197 |     clicked_item: Slot,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClickWindow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_id` is never read
[INFO] [stdout]    --> src/net/play.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 208 | struct CloseWindow {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 209 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CloseWindow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel` and `data` are never read
[INFO] [stdout]    --> src/net/play.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | struct PluginMessage<'a> {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 221 |     channel: Identifier,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 222 |     #[nom(Parse = "rest")]
[INFO] [stdout] 223 |     data: &'a [u8],
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PluginMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hand`, `count`, `entries`, and `title` are never read
[INFO] [stdout]    --> src/net/play.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 234 | struct EditBook<'a> {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 235 |     hand: Hand,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 236 |     #[nom(Parse = "varint")]
[INFO] [stdout] 237 |     count: u32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 238 |     #[nom(LengthCount = "varint::<u32>", Parse = "var_str")]
[INFO] [stdout] 239 |     entries: Vec<&'a str>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 240 |     #[nom(Parse = "maybe(var_str)")]
[INFO] [stdout] 241 |     title: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EditBook` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transaction_id` and `entity_id` are never read
[INFO] [stdout]    --> src/net/play.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 252 | struct QueryEntityNbt {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 253 |     #[nom(Parse = "varint")]
[INFO] [stdout] 254 |     transaction_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 255 |     #[nom(Parse = "varint")]
[INFO] [stdout] 256 |     entity_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QueryEntityNbt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity_id`, `interaction_type`, `interaction`, and `is_sneaking` are never read
[INFO] [stdout]    --> src/net/play.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct InteractEntity {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 268 |     #[nom(Parse = "varint")]
[INFO] [stdout] 269 |     entity_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 270 |     #[nom(Parse = "varint")]
[INFO] [stdout] 271 |     interaction_type: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 272 |     #[nom(Parse = "{|i| EntityInteraction::parse(i, interaction_type)}")]
[INFO] [stdout] 273 |     interaction: EntityInteraction,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 274 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 275 |     is_sneaking: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InteractEntity` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/net/play.rs:289:14
[INFO] [stdout]     |
[INFO] [stdout] 289 |     Interact(Hand),
[INFO] [stdout]     |     -------- ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntityInteraction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 289 -     Interact(Hand),
[INFO] [stdout] 289 +     Interact(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/net/play.rs:293:16
[INFO] [stdout]     |
[INFO] [stdout] 293 |     InteractAt(f32, f32, f32, Hand),
[INFO] [stdout]     |     ---------- ^^^  ^^^  ^^^  ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntityInteraction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 293 -     InteractAt(f32, f32, f32, Hand),
[INFO] [stdout] 293 +     InteractAt((), (), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `location`, `levels`, and `keep_jigsaws` are never read
[INFO] [stdout]    --> src/net/play.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 297 | struct GenerateStructure {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 298 |     location: Position,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 299 |     #[nom(Parse = "varint")]
[INFO] [stdout] 300 |     levels: u32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 301 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 302 |     keep_jigsaws: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GenerateStructure` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/net/play.rs:313:18
[INFO] [stdout]     |
[INFO] [stdout] 313 | struct KeepAlive(u64);
[INFO] [stdout]     |        --------- ^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `KeepAlive` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `locked` is never read
[INFO] [stdout]    --> src/net/play.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct LockDifficulty {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] 324 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 325 |     locked: bool,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LockDifficulty` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `y`, and `z` are never read
[INFO] [stdout]    --> src/net/play.rs:337:5
[INFO] [stdout]     |
[INFO] [stdout] 336 | struct PacketPos {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 337 |     x: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout] 338 |     y: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout] 339 |     z: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PacketPos` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `yaw` and `pitch` are never read
[INFO] [stdout]    --> src/net/play.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 342 | struct PacketRot {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 343 |     yaw: f32,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 344 |     pitch: f32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PacketRot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos` and `on_ground` are never read
[INFO] [stdout]    --> src/net/play.rs:349:5
[INFO] [stdout]     |
[INFO] [stdout] 348 | struct PlayerPosition {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 349 |     pos: PacketPos,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 350 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 351 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerPosition` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos`, `rot`, and `on_ground` are never read
[INFO] [stdout]    --> src/net/play.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 362 | struct PlayerPositionAndRotation {
[INFO] [stdout]     |        ------------------------- fields in this struct
[INFO] [stdout] 363 |     pos: PacketPos,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 364 |     rot: PacketRot,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 365 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 366 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerPositionAndRotation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rot` and `on_ground` are never read
[INFO] [stdout]    --> src/net/play.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 377 | struct PlayerRotation {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 378 |     rot: PacketRot,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 379 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 380 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerRotation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `on_ground` is never read
[INFO] [stdout]    --> src/net/play.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 392 | struct PlayerMovement {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] 393 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 394 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerMovement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos` and `rot` are never read
[INFO] [stdout]    --> src/net/play.rs:406:5
[INFO] [stdout]     |
[INFO] [stdout] 405 | struct VehicleMove {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 406 |     pos: PacketPos,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 407 |     rot: PacketRot,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VehicleMove` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left_paddle_turning` and `right_paddle_turning` are never read
[INFO] [stdout]    --> src/net/play.rs:420:5
[INFO] [stdout]     |
[INFO] [stdout] 418 | struct SteerBoat {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 419 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 420 |     left_paddle_turning: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 421 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 422 |     right_paddle_turning: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SteerBoat` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `slot_id` is never read
[INFO] [stdout]    --> src/net/play.rs:435:5
[INFO] [stdout]     |
[INFO] [stdout] 433 | struct PickItem {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 434 |     #[nom(Parse = "varint")]
[INFO] [stdout] 435 |     slot_id: u32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PickItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `window_id`, `recipe`, and `make_all` are never read
[INFO] [stdout]    --> src/net/play.rs:447:5
[INFO] [stdout]     |
[INFO] [stdout] 446 | struct CraftRecipeRequest {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 447 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 448 |     recipe: Identifier,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 449 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 450 |     make_all: bool,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CraftRecipeRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status`, `location`, and `face` are never read
[INFO] [stdout]    --> src/net/play.rs:477:5
[INFO] [stdout]     |
[INFO] [stdout] 475 | struct PlayerDigging {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 476 |     #[nom(Parse = "map_opt(varint::<u32>, DiggingStatus::from_u32)")]
[INFO] [stdout] 477 |     status: DiggingStatus,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 478 |     location: Position,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 479 |     face: Direction,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerDigging` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity_id`, `action_id`, and `jump_boost` are never read
[INFO] [stdout]    --> src/net/play.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 501 | struct EntityAction {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 502 |     #[nom(Parse = "varint")]
[INFO] [stdout] 503 |     entity_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 504 |     #[nom(Parse = "map_opt(varint::<u32>, EntityActionVariant::from_u32)")]
[INFO] [stdout] 505 |     action_id: EntityActionVariant,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 506 |     #[nom(Parse = "varint")]
[INFO] [stdout] 507 |     jump_boost: u32,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntityAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sideways`, `forward`, and `flags` are never read
[INFO] [stdout]    --> src/net/play.rs:532:5
[INFO] [stdout]     |
[INFO] [stdout] 531 | struct SteerVehicle {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 532 |     sideways: f32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 533 |     forward: f32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 534 |     flags: SteerVehicleFlags,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SteerVehicle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/net/play.rs:552:13
[INFO] [stdout]     |
[INFO] [stdout] 552 | struct Pong(u32);
[INFO] [stdout]     |        ---- ^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Pong` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `book_id`, `book_open`, and `filter_active` are never read
[INFO] [stdout]    --> src/net/play.rs:564:5
[INFO] [stdout]     |
[INFO] [stdout] 562 | struct SetRecipeBookState {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 563 |     #[nom(Parse = "varint")]
[INFO] [stdout] 564 |     book_id: u32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 565 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 566 |     book_open: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 567 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 568 |     filter_active: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SetRecipeBookState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `recipe_id` is never read
[INFO] [stdout]    --> src/net/play.rs:580:5
[INFO] [stdout]     |
[INFO] [stdout] 579 | struct SetDisplayedRecipe {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] 580 |     recipe_id: Identifier,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SetDisplayedRecipe` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Log` is never constructed
[INFO] [stdout]    --> src/tui.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 224 | enum InputMode {
[INFO] [stdout]     |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 227 |     Log,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/data.rs:224:45
[INFO] [stdout]     |
[INFO] [stdout] 224 | #[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive)]
[INFO] [stdout]     |                                             ^------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `FromPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Arm`
[INFO] [stdout] 225 | pub enum Arm {
[INFO] [stdout]     |          --- `Arm` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/data.rs:235:45
[INFO] [stdout]     |
[INFO] [stdout] 235 | #[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive)]
[INFO] [stdout]     |                                             ^------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `FromPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Hand`
[INFO] [stdout] 236 | pub enum Hand {
[INFO] [stdout]     |          ---- `Hand` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/net/play.rs:489:17
[INFO] [stdout]     |
[INFO] [stdout] 489 | #[derive(Debug, FromPrimitive)]
[INFO] [stdout]     |                 ^------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_DiggingStatus`
[INFO] [stdout] 490 | enum DiggingStatus {
[INFO] [stdout]     |      ------------- `DiggingStatus` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/net/play.rs:517:17
[INFO] [stdout]     |
[INFO] [stdout] 517 | #[derive(Debug, FromPrimitive)]
[INFO] [stdout]     |                 ^------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_EntityActionVariant`
[INFO] [stdout] 518 | enum EntityActionVariant {
[INFO] [stdout]     |      ------------------- `EntityActionVariant` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `x`, `y`, and `z` are never used
[INFO] [stdout]   --> src/data.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Position {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 16 |     pub fn x(self) -> i32 {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn y(self) -> i16 {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn z(self) -> i32 {
[INFO] [stdout]    |            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Angle` is never constructed
[INFO] [stdout]   --> src/data.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Angle(pub u8);
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Angular` is never used
[INFO] [stdout]   --> src/data.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait Angular {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_degrees_rounded`, `from_radians_rounded`, `to_degrees`, and `to_radians` are never used
[INFO] [stdout]    --> src/data.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl Angle {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  96 |     pub fn from_degrees_rounded<F: Angular>(f: F) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn from_radians_rounded<F: Angular>(f: F) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn to_degrees<F: Angular>(self) -> F {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn to_radians<F: Angular>(self) -> F {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_ref` is never used
[INFO] [stdout]    --> src/data.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl Identifier {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 142 |     pub fn as_ref<'a>(&'a self) -> IdentifierRef<'a> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `teleport_id` is never read
[INFO] [stdout]   --> src/net/play.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct TeleportConfirm {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 62 |     #[nom(Parse = "varint")]
[INFO] [stdout] 63 |     teleport_id: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TeleportConfirm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transaction_id` and `location` are never read
[INFO] [stdout]   --> src/net/play.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct QueryBlockNbt {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 75 |     #[nom(Parse = "varint")]
[INFO] [stdout] 76 |     transaction_id: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     location: Position,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueryBlockNbt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `new_difficulty` is never read
[INFO] [stdout]   --> src/net/play.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct SetDifficulty {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 89 |     new_difficulty: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SetDifficulty` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]    --> src/net/play.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct ChatMessage<'a> {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 101 |     #[nom(Parse = "var_str_with_max_length(256u32)")]
[INFO] [stdout] 102 |     message: &'a str,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChatMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `action_id` is never read
[INFO] [stdout]    --> src/net/play.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | struct ClientStatus {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 114 |     #[nom(Parse = "varint")]
[INFO] [stdout] 115 |     action_id: u32, // todo
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClientStatus` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/net/play.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | struct ClientSettings<'a> {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 127 |     #[nom(Parse = "var_str_with_max_length(16u32)")]
[INFO] [stdout] 128 |     locale: &'a str,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 129 |     view_distance: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 130 |     #[nom(Parse = "varint")]
[INFO] [stdout] 131 |     chat_mode: u32, //TODO
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 132 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 133 |     chat_colors: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 134 |     displayed_skin_parts: DisplayedSkinParts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 |     main_arm: Arm,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 136 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 137 |     enable_text_filtering: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClientSettings` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transaction_id` and `text` are never read
[INFO] [stdout]    --> src/net/play.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | struct TabComplete<'a> {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 161 |     #[nom(Parse = "varint")]
[INFO] [stdout] 162 |     transaction_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 163 |     #[nom(Parse = "var_str_with_max_length(32500u32)")]
[INFO] [stdout] 164 |     text: &'a str,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TabComplete` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `window_id` and `button_id` are never read
[INFO] [stdout]    --> src/net/play.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct ClickWindowButton {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 176 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 177 |     button_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClickWindowButton` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/net/play.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct ClickWindow {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 189 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 190 |     #[nom(Parse = "varint")]
[INFO] [stdout] 191 |     state_id: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 192 |     slot: i16,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 193 |     button: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 194 |     #[nom(Parse = "varint")]
[INFO] [stdout] 195 |     mode: u32, // todo,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 196 |     slots: Vec<(i16, Slot)>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 197 |     clicked_item: Slot,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClickWindow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_id` is never read
[INFO] [stdout]    --> src/net/play.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 208 | struct CloseWindow {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 209 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CloseWindow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel` and `data` are never read
[INFO] [stdout]    --> src/net/play.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | struct PluginMessage<'a> {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 221 |     channel: Identifier,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 222 |     #[nom(Parse = "rest")]
[INFO] [stdout] 223 |     data: &'a [u8],
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PluginMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hand`, `count`, `entries`, and `title` are never read
[INFO] [stdout]    --> src/net/play.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 234 | struct EditBook<'a> {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 235 |     hand: Hand,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 236 |     #[nom(Parse = "varint")]
[INFO] [stdout] 237 |     count: u32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 238 |     #[nom(LengthCount = "varint::<u32>", Parse = "var_str")]
[INFO] [stdout] 239 |     entries: Vec<&'a str>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 240 |     #[nom(Parse = "maybe(var_str)")]
[INFO] [stdout] 241 |     title: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EditBook` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transaction_id` and `entity_id` are never read
[INFO] [stdout]    --> src/net/play.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 252 | struct QueryEntityNbt {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 253 |     #[nom(Parse = "varint")]
[INFO] [stdout] 254 |     transaction_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 255 |     #[nom(Parse = "varint")]
[INFO] [stdout] 256 |     entity_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QueryEntityNbt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity_id`, `interaction_type`, `interaction`, and `is_sneaking` are never read
[INFO] [stdout]    --> src/net/play.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct InteractEntity {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 268 |     #[nom(Parse = "varint")]
[INFO] [stdout] 269 |     entity_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 270 |     #[nom(Parse = "varint")]
[INFO] [stdout] 271 |     interaction_type: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 272 |     #[nom(Parse = "{|i| EntityInteraction::parse(i, interaction_type)}")]
[INFO] [stdout] 273 |     interaction: EntityInteraction,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 274 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 275 |     is_sneaking: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InteractEntity` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/net/play.rs:289:14
[INFO] [stdout]     |
[INFO] [stdout] 289 |     Interact(Hand),
[INFO] [stdout]     |     -------- ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntityInteraction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 289 -     Interact(Hand),
[INFO] [stdout] 289 +     Interact(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/net/play.rs:293:16
[INFO] [stdout]     |
[INFO] [stdout] 293 |     InteractAt(f32, f32, f32, Hand),
[INFO] [stdout]     |     ---------- ^^^  ^^^  ^^^  ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntityInteraction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 293 -     InteractAt(f32, f32, f32, Hand),
[INFO] [stdout] 293 +     InteractAt((), (), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `location`, `levels`, and `keep_jigsaws` are never read
[INFO] [stdout]    --> src/net/play.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 297 | struct GenerateStructure {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 298 |     location: Position,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 299 |     #[nom(Parse = "varint")]
[INFO] [stdout] 300 |     levels: u32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 301 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 302 |     keep_jigsaws: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GenerateStructure` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/net/play.rs:313:18
[INFO] [stdout]     |
[INFO] [stdout] 313 | struct KeepAlive(u64);
[INFO] [stdout]     |        --------- ^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `KeepAlive` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `locked` is never read
[INFO] [stdout]    --> src/net/play.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct LockDifficulty {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] 324 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 325 |     locked: bool,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LockDifficulty` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `y`, and `z` are never read
[INFO] [stdout]    --> src/net/play.rs:337:5
[INFO] [stdout]     |
[INFO] [stdout] 336 | struct PacketPos {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 337 |     x: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout] 338 |     y: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout] 339 |     z: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PacketPos` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `yaw` and `pitch` are never read
[INFO] [stdout]    --> src/net/play.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 342 | struct PacketRot {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 343 |     yaw: f32,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 344 |     pitch: f32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PacketRot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos` and `on_ground` are never read
[INFO] [stdout]    --> src/net/play.rs:349:5
[INFO] [stdout]     |
[INFO] [stdout] 348 | struct PlayerPosition {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 349 |     pos: PacketPos,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 350 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 351 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerPosition` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos`, `rot`, and `on_ground` are never read
[INFO] [stdout]    --> src/net/play.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 362 | struct PlayerPositionAndRotation {
[INFO] [stdout]     |        ------------------------- fields in this struct
[INFO] [stdout] 363 |     pos: PacketPos,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 364 |     rot: PacketRot,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 365 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 366 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerPositionAndRotation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rot` and `on_ground` are never read
[INFO] [stdout]    --> src/net/play.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 377 | struct PlayerRotation {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 378 |     rot: PacketRot,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 379 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 380 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerRotation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `on_ground` is never read
[INFO] [stdout]    --> src/net/play.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 392 | struct PlayerMovement {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] 393 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 394 |     on_ground: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerMovement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos` and `rot` are never read
[INFO] [stdout]    --> src/net/play.rs:406:5
[INFO] [stdout]     |
[INFO] [stdout] 405 | struct VehicleMove {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 406 |     pos: PacketPos,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 407 |     rot: PacketRot,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VehicleMove` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left_paddle_turning` and `right_paddle_turning` are never read
[INFO] [stdout]    --> src/net/play.rs:420:5
[INFO] [stdout]     |
[INFO] [stdout] 418 | struct SteerBoat {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 419 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 420 |     left_paddle_turning: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 421 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 422 |     right_paddle_turning: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SteerBoat` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `slot_id` is never read
[INFO] [stdout]    --> src/net/play.rs:435:5
[INFO] [stdout]     |
[INFO] [stdout] 433 | struct PickItem {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 434 |     #[nom(Parse = "varint")]
[INFO] [stdout] 435 |     slot_id: u32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PickItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `window_id`, `recipe`, and `make_all` are never read
[INFO] [stdout]    --> src/net/play.rs:447:5
[INFO] [stdout]     |
[INFO] [stdout] 446 | struct CraftRecipeRequest {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 447 |     window_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 448 |     recipe: Identifier,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 449 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 450 |     make_all: bool,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CraftRecipeRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status`, `location`, and `face` are never read
[INFO] [stdout]    --> src/net/play.rs:477:5
[INFO] [stdout]     |
[INFO] [stdout] 475 | struct PlayerDigging {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 476 |     #[nom(Parse = "map_opt(varint::<u32>, DiggingStatus::from_u32)")]
[INFO] [stdout] 477 |     status: DiggingStatus,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 478 |     location: Position,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 479 |     face: Direction,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerDigging` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity_id`, `action_id`, and `jump_boost` are never read
[INFO] [stdout]    --> src/net/play.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 501 | struct EntityAction {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 502 |     #[nom(Parse = "varint")]
[INFO] [stdout] 503 |     entity_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 504 |     #[nom(Parse = "map_opt(varint::<u32>, EntityActionVariant::from_u32)")]
[INFO] [stdout] 505 |     action_id: EntityActionVariant,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 506 |     #[nom(Parse = "varint")]
[INFO] [stdout] 507 |     jump_boost: u32,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntityAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sideways`, `forward`, and `flags` are never read
[INFO] [stdout]    --> src/net/play.rs:532:5
[INFO] [stdout]     |
[INFO] [stdout] 531 | struct SteerVehicle {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 532 |     sideways: f32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 533 |     forward: f32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 534 |     flags: SteerVehicleFlags,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SteerVehicle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/net/play.rs:552:13
[INFO] [stdout]     |
[INFO] [stdout] 552 | struct Pong(u32);
[INFO] [stdout]     |        ---- ^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Pong` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `book_id`, `book_open`, and `filter_active` are never read
[INFO] [stdout]    --> src/net/play.rs:564:5
[INFO] [stdout]     |
[INFO] [stdout] 562 | struct SetRecipeBookState {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 563 |     #[nom(Parse = "varint")]
[INFO] [stdout] 564 |     book_id: u32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 565 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 566 |     book_open: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 567 |     #[nom(Parse = "boolean")]
[INFO] [stdout] 568 |     filter_active: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SetRecipeBookState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `recipe_id` is never read
[INFO] [stdout]    --> src/net/play.rs:580:5
[INFO] [stdout]     |
[INFO] [stdout] 579 | struct SetDisplayedRecipe {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] 580 |     recipe_id: Identifier,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SetDisplayedRecipe` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Log` is never constructed
[INFO] [stdout]    --> src/tui.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 224 | enum InputMode {
[INFO] [stdout]     |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 227 |     Log,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/data.rs:224:45
[INFO] [stdout]     |
[INFO] [stdout] 224 | #[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive)]
[INFO] [stdout]     |                                             ^------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `FromPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Arm`
[INFO] [stdout] 225 | pub enum Arm {
[INFO] [stdout]     |          --- `Arm` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/data.rs:235:45
[INFO] [stdout]     |
[INFO] [stdout] 235 | #[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive)]
[INFO] [stdout]     |                                             ^------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `FromPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Hand`
[INFO] [stdout] 236 | pub enum Hand {
[INFO] [stdout]     |          ---- `Hand` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/net/play.rs:489:17
[INFO] [stdout]     |
[INFO] [stdout] 489 | #[derive(Debug, FromPrimitive)]
[INFO] [stdout]     |                 ^------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_DiggingStatus`
[INFO] [stdout] 490 | enum DiggingStatus {
[INFO] [stdout]     |      ------------- `DiggingStatus` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/net/play.rs:517:17
[INFO] [stdout]     |
[INFO] [stdout] 517 | #[derive(Debug, FromPrimitive)]
[INFO] [stdout]     |                 ^------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_EntityActionVariant`
[INFO] [stdout] 518 | enum EntityActionVariant {
[INFO] [stdout]     |      ------------------- `EntityActionVariant` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.58s
[INFO] running `Command { std: "docker" "inspect" "3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba", kill_on_drop: false }`
[INFO] [stdout] 3ab90a6824b6de4f8d7b6d53f36e86ec8cd1eba9c87d1f4b810ff60b1df024ba
